import os
from crewai import LLM
from dotenv import load_dotenv
from crewai import Agent, Task, Crew
# 获取当前目录
current_dir = os.path.dirname(os.path.abspath(__file__))
env_path = os.path.join(current_dir, '.env')
print("env_path: ", env_path)
# 强制制定.env的文件路径，并强制清空系统环境变量的内容 一般用load_dotenv()即可满足要求了
load_dotenv(env_path, override=True)

model=os.getenv("OPENAI_MODEL_NAME")
api_base=os.getenv("OPENAI_API_BASE")
api_key=os.getenv("OPENAI_API_KEY")
# 打印出来看看
print("model:", model)
print("api_base:", api_base)
print("api_key:", len(api_key))

# 看源码，vs code 只看大纲的函数，精简下 设置里找到 outline.showVariables
llm = LLM(
    model=model,
    api_base=api_base,
    api_key=api_key,
    stream=True,
)
# llm.call("帮我介绍下人工智能")

# 创建智能体
email_assitant = Agent(
    role="电子邮件助理智能体",
    goal="改进电子邮件，使其听起来专业且清晰",
    backstory="一位经验丰富的沟通专家，擅长专业电子邮件写作",
    verbose=True,
    llm=llm,
)

original_email = """
嘿，团队，我想跟大家说一下，演示内容差不多准备好了，但还有一些东西没完成。
也许我们可以先展示目前已有的部分，剩下的就说是“进行中”（WIP）。
大家觉得怎么样？谢谢！
"""
# 创建任务
email_task = Task(
    description=f"""将以下草稿邮件润色成专业的商务版本。{original_email}""",
    agent=email_assitant,
    expected_output="一封中文的格式规范、内容专业的书面邮件"
)
# 创建团队
crew = Crew(
    agents=[email_assitant],
    tasks=[email_task],
    verbose=True,
)

result = crew.kickoff()
print(result)